Dockerfile, um README e um ícone. O catálogo é construído a partir desse repositório, então não existe formulário de envio no dashboard. Este tutorial leva o bot do primeiro tutorial de “funciona como template privado” até um pull request aberto, e o mesmo caminho vale para templates de imagem.
Templates do catálogo mostram um selo Community e o seu nome, têm sempre código aberto e são empacotados pelo build da Vertra a partir do commit que foi mesclado, então ninguém depende da sua conta para mantê-los disponíveis.
Antes de começar
A CLI da Vertra e uma conta no GitHub.
Código que você tem permissão para distribuir publicamente, sob uma licença compatível com isso. Os revisores conferem.
code.view: false, env_hidden e share.full_copy são recusados em templates públicos com forbidden_in_public. Se o seu template for um template fechado, ele continua privado.
Passo a passo
1
Teste primeiro como template privado
Um template privado e um público rodam no mesmo engine, então o teste mais barato é usar o seu template de verdade. Em um estado limpo, confira pelo menos:
- Deploy do zero pelo assistente ou com
vertra template deploy, respondendo às perguntas com valores realistas, e depois a primeira tela do software. - Os padrões. Faça deploy de novo aceitando todos os padrões: ele precisa subir sem passos extras.
- Os caminhos ignorados. Se um
whenou uma opção desliga serviços, faça deploy de cada variante. - Reinício e atualização. Reinicie o app, publique a versão
1.0.1e atualize um app, depois faça rollback. Os dados precisam sobreviver a reinícios. - RAM mínima. Faça deploy com o valor de
ram.mine observe o log em busca de encerramentos por falta de memória.
2
Verifique se o template é elegível
A revisão procura estes pontos, então confira antes:
- Nada de mineradores, telemetria oculta, chamadas a servidores não relacionados nem segredos no código.
- Uma licença que permita distribuição pública, com link em
links.license. - Código aberto: o template precisa estar totalmente visível, sem
env_hidden. - Uma versão fixa do software, com a imagem fixada (veja o passo do manifesto).
- Um README que outra pessoa consiga seguir sem perguntar nada a você.
secret para chaves); um segredo literal no manifesto é recusado com secret_in_manifest.3
Monte a pasta
Faça um fork do repositório do catálogo, clone o seu fork e crie uma pasta com o nome do Um template de código traz o código dele (
id do template, como os templates existentes fazem:src/); um template de imagem traz o Dockerfile e tudo de que o build precisa, sem src/. A pasta docs/ guarda páginas mais longas que alimentam a página do template no site de documentação; o dashboard mostra só o README.4
Adapte o manifesto às regras do catálogo
Copie o manifesto do seu template privado e mude o que difere:
Para o bot, o manifesto do catálogo fica assim:
vertracloud.template.yaml (catalog)
Para um template de imagem, o manifesto do catálogo tem
source: { type: image, image: "docker.io/vendor/app@sha256:<64 hex digits>", context: . }. A imagem é fixada por digest para que todo deploy rode os mesmos bytes, e o Dockerfile da pasta é construído pelo pipeline do catálogo em uma imagem que pertence à plataforma, não a você.5
Adicione o ícone
O
icon.svg é um arquivo vetorial simples, por exemplo de 128 por 128. O catálogo recusa um SVG que contenha scripts, foreignObject, atributos de evento como onload= ou referências a recursos externos:icon.svg
6
Escreva o README
O README é a página do template. Os templates existentes do catálogo o escrevem em três seções (português, inglês e espanhol) com a mesma estrutura. Cubra o que o template entrega ao usuário e o que é bom saber:Diga coisas verdadeiras: a memória de que o template precisa, o que é criado, o que o usuário precisa fazer depois do deploy, o que o template não faz e a licença do software empacotado.
README.md
7
Valide antes de enviar
source.path, sem código fechado), então releia a tabela do passo do manifesto antes do push. Veja Validar e testar para saber como ler cada achado.8
Abra o pull request
Faça o commit da pasta em uma branch do seu fork e abra um pull request ao repositório do catálogo. A cada pull request, o pipeline:
- Valida o manifesto com o schema e as regras (placeholders,
when, permissões, slugs de plano). - Faz o build da imagem, quando o template tem um
Dockerfile, ou resolve a imagem fixada. - Procura file capabilities na imagem: um binário com uma delas não roda com as restrições da plataforma.
- Confere a licença declarada.
9
Passe pela revisão
Uma pessoa da Vertra roda o template na plataforma com a memória mínima que você declarou e revisa a segurança (sem mineradores, sem telemetria oculta, sem segredos no código), a licença e a qualidade do README. Espere comentários e responda a eles no pull request. Quando for aprovado e mesclado, o pipeline empacota a pasta naquele commit como uma versão do template e a publica com o selo Community e o seu nome. Versões posteriores são novos pull requests, revisados do mesmo jeito. Um template da comunidade que deixa de ser mantido pode ser marcado como obsoleto: ele sai da galeria, os apps já criados continuam rodando e recebem um aviso.
O caminho até o catálogo público é o pull request, feito à mão: não existe botão no painel. Um template fechado nunca vai para o catálogo.
Solução de problemas
Próximos passos
- Contribua com o catálogo público: a checklist e os critérios de revisão em uma só página.
- Validar e testar: como testar como privado e ler os achados de validação.
- Referência do manifesto: os campos que o catálogo exige.
- Schema do manifesto: o JSON Schema que os editores e o CI usam.
- Referência de erros: códigos de erro de validação e de deploy.
- Templates privados: versões, workspaces e o limite de 5.