Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

gateway: no automatic CAA reconciliation loop

Aberta
#1,010 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
48/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
rust
Domínio
backend, networking

Direção de pesquisa

Rastreie RotateAcmeCredentials, SetCaa, set_caa, set_caa_records e a tarefa periódica existente de renovação de certificados. Comece entendendo como os valores accounturi publicados e os domínios ZT são obtidos; em seguida, verifique se a reconciliação confere os registros CAA e tenta novamente os domínios divergentes. Está concluído quando rotações parciais, divergências na lista de domínios e registros de guarda restantes convergirem sem reexecutar SetCaa manualmente, e o custo das leituras DNS estiver quantificado.

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

Descrição

Follow-up to #935.

Two paths currently rely on an operator manually rerunning SetCaa to converge:

  1. Partial rotation failure — RotateAcmeCredentials publishes the new credentials first, then re-pins CAA best-effort per domain. Domains that fail stay pinned to the old account until SetCaa is rerun; issuance for them fails CAA while existing certs keep serving, so the breakage can stay invisible for up to ~90 days.
  2. Domain-list skew — rotation and SetCaa iterate the local WaveKV snapshot. A ZT domain added on another node but not yet synced is silently skipped and stays pinned to the old account.

Certificate renewal has a periodic task that retries until it converges; CAA has no equivalent.

Proposal

Add a periodic reconciliation pass (piggybacking on the existing renewal loop) that:

  • reads the published credential's accounturi;
  • for each ZT domain, checks whether the CAA issue/issuewild records pin that URI (DNS read only in the common case);
  • re-pins divergent domains via the existing set_caa path, logging loudly.

This removes both manual steps, converges the concurrent-rotation aftermath (#1008), and also cleans up leftover ; guard records from an interrupted set_caa_records run. Cost is N DNS reads per interval — quantify, but at renewal-loop frequency this is negligible.

Linguagem predominante
Rust
Estrelas
551
Forks
97
Merge médio
1d 3h
PRs com merge (30d)
199

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 Dstack-TEE/dstack

Todas as issues de Dstack-TEE/dstack

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

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