Este documento pode estar desatualizado

Este documento possui uma data de atualização mais antiga que o documento original. Portanto, este conteúdo pode estar desatualizado. Se você lê inglês, veja a versão em inglês para acessar a versão mais atualizada: Documentation Style Guide

Guia de Estilo da Documentação

Esta página fornece orientações de estilo para escrita da documentação do Kubernetes. Estas são orientações, não regras. Utilize seu melhor julgamento e sinta-se livre para propor alterações neste documento através de um pull request.

Para informações adicionais sobre como criar novo conteúdo para a documentação do Kubernetes, leia o Guia de Conteúdo da Documentação.

Mudanças no guia de estilo são feitas pelo SIG Docs como um grupo. Para propor uma alteração ou adição, inclua o tópico na agenda de uma das reuniões futuras do SIG Docs, e participe da reunião para fazer parte da discussão.

Língua

A documentação do Kubernetes foi traduzida para diversas línguas (veja READMEs das Localizações).

A forma para localização de documentação em uma língua diferente está descrita em localizando a documentação do Kubernetes.

Padrões de formatação da documentação

Utilize upper camel case para objetos da API

Quando você se referir especificamente a interações com um objeto da API, utilize UpperCamelCase, também conhecido como Pascal case. Você poderá encontrar formatação de maiúsculas e minúsculas diferente, como por exemplo "configMap", na referência da API. Ao escrever documentação geral, prefira a utilização de upper camel case, chamando o objeto de "ConfigMap".

Quando você estiver discutindo um objeto da API, utilize a formatação de maiúsculas e minúsculas no estilo de sentença.

Os exemplos a seguir focam no estilo de formatação de maiúsculas e minúsculas. Para mais informações sobre como formatar nomes de objetos da API, revise a orientação relacionada no manual de estilo de código.

Faça e não faça - Utilizando _Pascal case_ para objetos da API
FaçaNão faça
O recurso HorizontalPodAutoscaler é responsável por ...O Horizontal pod autoscaler é responsável por ...
Um objeto PodList é uma lista de Pods.Um objeto Pod List é uma lista de Pods.
O objeto Volume contém um campo hostPath.O objeto volume contém um campo hostPath.
Cada objeto ConfigMap é parte de um namespace.Cada objeto configMap é parte de um namespace.
Para o gerenciamento de dados confidenciais, considere utilizar a API de Secrets.Para o gerenciamento de dados confidenciais, considere utilizar a API de segredos.

Utilize chevrons para espaços reservados

Utilize chevrons (< e >) para espaços reservados. Comunique ao leitor o que o espaço reservado significa. Por exemplo:

kubectl describe pod <nome-do-pod> -n <namespace>

Se o nome do namespace do Pod for default, você pode omitir o paramêtro '-n'.

Grife elementos de interface de usuário

Faça e não faça - grife elementos da interface do usuário
FaçaNão faça
Clique em Fork.Clique em "Fork".
Selecione Other.Selecione "Other".

Utilize itálico para definir ou introduzir novos termos

Faça e não faça - Utilize itálico para novos termos
FaçaNão faça
Um cluster é um conjunto de nós ...Um "cluster" é um conjunto de nós ...
Estes componentes formam a camada de gerenciamento.Estes componentes formam a camada de gerenciamento.

Utilize estilo de código para nomes de arquivos, diretórios e caminhos

Faça e não faça - Utilize estilo de código para nomes de arquivos, diretórios e caminhos
FaçaNão faça
Abra o arquivo envars.yaml.Abra o arquivo envars.yaml.
Navegue até o diretório /docs/tutorials.Navegue até o diretório /docs/tutorials.
Abra o arquivo /_data/concepts.yaml.Abra o arquivo /_data/concepts.yaml.

Utilize o padrão internacional para pontuação dentro de aspas

Faça e não faça - Utilize o padrão internacional para pontuação dentro de aspas
FaçaNão faça
eventos são registrados com um "estágio associado".eventos são registrados com um "estágio associado."
A cópia é chamada de "fork".A cópia é chamada de "fork."

Formatação de código embutido

Utilize estilo de código para código embutido, comandos e objetos da API

Para código embutido em um documento HTML, utilize a tag <code>. Em um documento Markdown, utilize os símbolos de crase (`).

Faça e não faça - Utilize estilo de código para código embutido, comandos e objetos da API
FaçaNão faça
O comando kubectl run cria um Pod.O comando "kubectl run" cria um pod.
O kubelet em cada nó obtém um Lease ...O kubelet em cada nó obtem um lease...
Um PersistentVolume representa armazenamento durável ...Um PersistentVolume representa armazenamento durável ...
Para gerenciamento declarativo, utilize kubectl apply.Para gerenciamento declarativo, utilize "kubectl apply".
Circunde exemplos de código com três símbolos de crase. (```)Circunde exemplos de código com quaisquer outras sintaxes.
Utilize um único símbolo de crase para circundar código embutido. Por exemplo, var example = true.Utilize dois asteriscos (**) ou um subtraço (_) para circundar código embutido. Por exemplo, var example = true.
Utilize três símbolos de crase antes e depois de um bloco de código de múltiplas linhas para blocos de código cercados.Utilize blocos de código de múltiplas linhas para criar diagramas, fluxogramas, ou outras ilustrações.
Utilize nomes de variáveis significativos que possuem um contexto.Utilize nomes de variáveis como 'foo', 'bar' e 'baz' que não são significativos e não possuem contexto.
Remova espaços em branco em final de linha no código.Adicione espaços em branco no código, onde estes são importantes, pois os leitores de tela lerão os espaços em branco também.

Utilize estilo de código para nomes de campos de objetos e namespaces

Faça e não faça - Utilize estilo de código para nomes de campos de objetos
FaçaNão faça
Especifique o valor do campo replicas no arquivo de configuração.Especifique o valor do campo "replicas" no arquivo de configuração.
O valor do campo exec é um objeto do tipo ExecAction.O valor do campo "exec" é um objeto do tipo ExecAction.
Execute o processo como um DaemonSet no namespace kube-system.Execute o processo como um DaemonSet no namespace kube-system.

Utilize estilo de código para ferramentas de linha de comando e nomes de componentes do Kubernetes

Faça e não faça - Utilize estilo de código para ferramentas de linha de comando e componentes do Kubernetes
FaçaNão faça
O kubelet preserva a estabilidade do nó.O kubelet preserva a estabilidade do nó.
O kubectl gerencia a busca e a autenticação com o servidor da API.O kubectl gerencia a busca e a autenticação com o servidor da API.
Execute o processo com o certificado, kube-apiserver --client-ca-file=FILENAME.Execute o processo com o certificado, kube-apiserver --client-ca-file=FILENAME.

Iniciando sentenças com o nome de uma ferramenta de linha de comando ou de um componente

Faça e não faça - Iniciando sentenças com o nome de uma ferramenta de linha de comando ou de um componente
FaçaNão faça
A ferramenta kubeadm inicializa e provisiona máquinas em um cluster.kubeadm inicializa e provisiona ferramentas em um cluster.
O kube-scheduler é o escalonador padrão para o Kubernetes.kube-scheduler é o escalonador padrão para o Kubernetes.

Utilize uma descrição geral no lugar de um nome de componente

Faça e não faça - Utilize uma descrição geral no lugar de um nome de componente
FaçaNão faça
O servidor da API do Kubernetes oferece uma especificação OpenAPI.O apiserver oferece uma especificação OpenAPI.
APIs agregadas são servidores de API subordinados.APIs agregadas são APIServers subordinados.

Utilize estilo normal para valores de campos do tipo texto ou inteiro

Para valores de campos do tipo texto ou inteiro, utilize o estilo normal sem aspas.

Faça e não faça - Utilize o estilo normal para valores de campo do tipo texto ou inteiro
FaçaNão faça
Especifique o valor Always para o campo imagePullPolicy.Especifique o valor "Always" para o campo imagePullPolicy.
Especifique o valor nginx:1.16 para o campo image.Especifique o valor nginx:1.16 para o campo image.
Especifique o valor 2 para o campo replicas.Especifique o valor 2 para o campo replicas.

Referindo-se a recursos da API do Kubernetes

Esta seção discorre sobre como referenciar recursos da API na documentação.

Clarificação sobre "recurso"

O Kubernetes utiliza a palavra "recurso" para se referir a recursos da API, como pod, deployment, e demais objetos. Também utilizamos "recurso" para falar de requisições e limites de recursos de CPU e memória. Sempre se refira a recursos da API como "recursos da API" para evitar confusão com recursos de CPU e memória.

Quando utilizar a terminologia da API do Kubernetes

As diferentes terminologias da API do Kubernetes são:

  • Tipo de recurso: o nome utilizado na URL da API (como pods, namespaces)
  • Recurso: uma instância única de um tipo de recurso (como pod, secret)
  • Objeto: um recurso que serve como um "registro de intenção". Um objeto é um estado desejado para uma parte específica do seu cluster, que a camada de gerenciamento do Kubernetes tenta manter.

Sempre utilize "recurso" ou "objeto" ao se referir a um recurso da API em documentação. Por exemplo, utilize "um objeto Secret" ao invés de apenas "um Secret".

Nomes de recursos da API

Sempre formate nomes de recursos da API utilizando UpperCamelCase, também conhecido como PascalCase, e formatação de código.

Para código embutido em um documento HTML, utilize a tag <code>. Em um documento Markdown, utilize o sinal de crase (`).

Não separe um nome de objeto da API em palavras individuais. Por exemplo, escreva PodTemplateList no lugar de Pod Template List.

Para mais informações sobre o PascalCase e formatação de código, por favor revise as orientações relacionadas nas seções Utilize UpperCamelCase para objetos da API e Utilize estilo de código para código embutido, comandos e objetos da API.

Para mais informações sobre as terminologias da API do Kubernetes, por favor revise a orientação relacionada sobre terminologia da API do Kubernetes.

Formatação de fragmentos de código

Não inclua o prompt de comando

Faça e não faça - Não inclua o prompt de comando
FaçaNão faça
kubectl get pods$ kubectl get pods

Separe os comandos de seus resultados

Verifique que o Pod está rodando no seu nó escolhido:

kubectl get pods --output=wide

A saída é semelhante a:

NAME     READY     STATUS    RESTARTS   AGE    IP           NODE
nginx    1/1       Running   0          13s    10.200.0.4   worker0

Exemplos de versionamento do Kubernetes

Exemplos de código e de configuração que incluem informação da versão devem ser consistentes com o texto que os acompanha.

Se a informação é específica para uma versão, a versão do Kubernetes deve ser definida na seção prerequisites dos modelos de página de tarefa ou de tutorial. Assim que a página for salva, a seção prerequisitos é exibida com o título Antes de você começar.

Para especificar uma versão do Kubernetes para uma página de tarefa ou de tutorial, inclua a chave min-kubernetes-server-version na seção de front matter.

Se o exemplo de YAML for um arquivo avulso, procure e revise os tópicos que o incluem como uma referência. Verifique que quaisquer tópicos que estejam utilizando o YAML avulso têm a informação de versão apropriada definida. Se um arquivo avulso YAML não for referenciado em nenhum tópico, considere apagá-lo ao invés de atualizá-lo.

Por exemplo, se você estiver escrevendo um tutorial que é relevante para a versão 1.8 do Kubernetes, o front matter do seu arquivo Markdown deve ser semelhante ao demonstrado abaixo:

---
title: <seu título de tutorial aqui>
min-kubernetes-server-version: v1.8
---

Nos exemplos de código e configuração, não inclua comentários sobre versões alternativas. Tenha o cuidado de não incluir afirmações incorretas em comentários nos seus exemplos, como por exemplo:

apiVersion: v1 # versões mais antigas usam...
kind: Pod
...

Kubernetes.io word list

Uma lista de termos específicos do Kubernetes para serem utilizados de forma consistente em todo o website.

Lista de palavras do Kubernetes.io
TermUsage
KubernetesKubernetes deve sempre ser escrito com K maiúsculo.
DockerDocker deve sempre ser escrito com D maiúsculo.
SIG DocsEscreva SIG Docs ao invés de SIG-DOCS ou outras variantes.
On-premisesEscreva On-premises ou On-prem ao invés de On-premise ou outras variantes.

Shortcodes

Os shortcodes do Hugo auxiliam na criação de diferentes níveis de atrativos retóricos. Nossa documentação suporta três diferentes shortcodes nessa categoria: Nota {{< note >}}, Cuidado {{< caution >}}, e Aviso {{< warning >}}.

  1. Circunde o texto com uma abertura e um fechamento de shortcode.

  2. Utilize a sintaxe abaixo para aplicar um estilo:

    {{< note >}}
    Não há necessidade de incluir um prefixo; o _shortcode_ fornece um automaticamente (Nota:, Cuidado:, etc.).
    {{< /note >}}
    

    A saída é semelhante a:

Nota

Utilize {{< note >}} para destacar uma dica ou uma informação que pode ser útil para o leitor.

Por exemplo:

{{< note >}}
Você _ainda_ pode utilizar Markdown dentro destas seções de destaque.
{{< /note >}}

The output is:

Você pode utilizar o shortcode {{< note >}} em uma lista:

1. Utilize o _shortcode_ `note` em uma lista

1. Um segundo item em uma lista com um shortcode note embutido

    {{< note >}}
    _Shortcodes_ Aviso, Cuidado e Nota, embutidos em listas, devem ser indentados
    com quatro espaços. Veja mais em [Problemas comuns com _shortcodes_](#common-shortcode-issues).
    {{< /note >}}

1. Um terceiro item em uma lista

1. Um quarto item em uma lista

A saída é:

  1. Utilize o shortcode note em uma lista

  2. Um segundo item em uma lista com um shortcode note embutido

  3. Um terceiro item em uma lista

  4. Um quarto item em uma lista

Cuidado

Utilize {{< caution >}} para chamar a atenção a informações importantes que podem evitar problemas.

Por exemplo:

{{< caution >}}
O estilo de chamada se aplica somente à linha diretamente acima da tag.
{{< /caution >}}

A saída é:

Aviso

Utilize {{< warning >}} para indicar perigo ou uma orientação que é crucial e deve ser seguida.

Por exemplo:

{{< warning >}}
Cuidado.
{{< /warning >}}

A saída é:

Problemas comuns com shortcodes

Listas ordenadas

Shortcodes interrompem listas numeradas a não ser que estejam indentados com quatro espaços antes da nota e da tag.

Por exemplo:

1. Preaqueça o forno a 350°F.

1. Prepare a massa e a coloque na assadeira.
   `{{< note >}}Unte a assadeira para melhores resultados.{{< /note >}}`

1. Asse por 20-25 minutos, ou até que ao testar com um palito este saia limpo.

A saída é:

  1. Preaqueça o forno a 350°F.

  2. Prepare a massa e a coloque na assadeira.

  3. Asse por 20-25 minutos, ou até que ao testar com um palito este saia limpo.

Cláusulas include

Shortcodes dentro de cláusulas include fazem com que o build falhe. Você deve colocá-los no documento superior, antes e depois da cláusula include. Por exemplo:

{{< note >}}
{{< include "task-tutorial-prereqs.md" >}}
{{< /note >}}

Elementos Markdown

Quebras de linha

Utilize uma única linha em branco para dividir conteúdo a nível de bloco como por exemplo cabeçalhos, listas, imagens, blocos de código, entre outros. A exceção são cabeçalhos de segundo nível, onde duas linhas em branco devem ser utilizadas. Cabeçalhos de segundo nível seguem o primeiro nível (ou o título) sem nenhum texto ou parágrafo precedente. Um espaçamento de duas linhas em branco auxilia a melhor visualização geral da estrutura do conteúdo em um editor de texto.

Cabeçalhos e títulos

Pessoas que acessam esta documentação podem estar fazendo uso de um leitor de tela ou outro tipo de tecnologia auxiliar. Leitores de tela são dispositivos de saída linear que falam de um item por vez em uma página. Se uma grande quantidade de conteúdo existe em uma página, você pode utilizar cabeçalhos para dar à página uma estrutura interna. Uma boa estrutura de página auxilia todos os leitores a navegar facilmente ou filtrar tópicos de interesse.

Faça e não faça - Cabeçalhos
FaçaNão faça
Atualize o título no front matter da página ou postagem de blog.Utilize cabeçalho de primeiro nível, pois o Hugo automaticamente converte o título do front matter para um cabeçalho de primeiro nível.
Utilize cabeçalhos ordenados para fornecer um resumo de alto nível do seu conteúdo.Utilize cabeçalhos de nível 4 a 6, a menos que seja absolutamente necessário. Se o seu conteúdo é detalhado a este nível, pode ser que ele precise ser dividido em artigos separados.
Utilize o sinal numérico ou cerquilha (#) para conteúdo que não seja postagem de blog.Utilize traços ou sinais de igual (--- ou ===) para designar cabeçalhos de primeiro nível.
Utilize formatação de maiúsculas e minúsculas de sentença para cabeçalhos no corpo da página. Por exemplo, Estenda o kubectl com pluginsUtilize formatação de maiúsculas e minúsculas de título para cabeçalhos no corpo da página. Por exemplo, Estenda o Kubectl com Plugins
Utilize formatação de maiúsculas e minúsculas de título para o título da página no front matter. Por exemplo, title: Riscos do Contorno do Servidor da API do KubernetesUtilize formatação de maiúsculas e minúsculas de sentença para títulos de página no front matter. Por exemplo, não utilize title: Riscos do contorno do servidor da API do Kubernetes

Parágrafos

Faça e não faça - Parágrafos
FaçaNão faça
Tente manter os parágrafos abaixo de 6 sentenças.Indente o primeiro parágrafo com caracteres de espaço. Por exemplo, ⋅⋅⋅Três espaços antes de um parágrafo o indenta.
Utilize três hífens (---) para criar uma régua horizontal. Utilize réguas horizontais para quebras no conteúdo do parágrafo. Por exemplo, uma mudança de cena em uma história, ou uma mudança de tópico dentro de uma seção.Utilize réguas horizontais para decoração.
Faça e não faça - Links
FaçaNão faça
Crie hiperlinks que forneçam o contexto para o conteúdo para o qual eles apontam. Por exemplo: certas portas estão abertas em suas máquinas. Veja Verifique portas necessárias para mais detalhes.Utilize termos ambíguos, como "clique aqui". Por exemplo: certas portas estão abertas em suas máquinas. Veja aqui para mais detalhes.
Crie hiperlinks no estilo de Markdown: [texto do link](URL). Por exemplo: [_Shortcodes_ do Hugo](/docs/contribute/style/hugo-shortcodes/#table-captions), cuja saída é Shortcodes do Hugo.Crie links no estilo de HTML: <a href="/media/examples/link-element-example.css" target="_blank">Visite nosso tutorial!</a>, ou crie links que abrem em novas abas ou janelas. Por exemplo: [website de exemplo](https://example.com){target="_blank"}

Listas

Agrupe em listas itens relacionados que devem aparecer em uma ordem específica, ou para indicar uma correlação entre vários itens. Quando um leitor de tela encontra uma lista, independentemente de ser uma lista ordenada ou não-ordenada, o leitor de tela anunciará ao usuário que há um grupo de itens em lista. O usuário pode então utilizar as teclas de seta para navegar para cima e para baixo entre os vários itens da lista. Links para navegação no website também podem ser marcados como itens de lista, pois nada mais são do que um grupo de links relacionados.

  • Finalize cada item em uma lista com um ponto final se um ou mais itens na lista forem sentenças completas. Para consistência, normalmente todos os itens da lista devem ser sentenças completas, ou nenhum dos itens deve ser.

  • Utilize o número um (1.) para listas ordenadas.

  • Utilize (+), (*) ou (-) para listas não-ordenadas.

  • Deixe uma linha em branco após cada lista.

  • Indente listas aninhadas com quatro espaços (por exemplo, ⋅⋅⋅⋅).

  • Itens de lista podem consistir de múltiplos parágrafos. Cada parágrafo subsequente em uma lista deve estar indentado em quatro espaços ou um caractere de tabulação.

Tabelas

O propósito semântico de uma tabela de dados é apresentar dados tabulados. Usuários que não fazem uso de leitores de tela podem inspecionar a tabela de forma visual rapidamente, mas um leitor de tela irá ler o conteúdo linha a linha. Uma legenda de tabela é utilizada para criar um título descritivo para uma tabela de dados. Tecnologias auxiliares utilizam o elemento HTML caption para identificar o conteúdo da tabela para o usuário dentro da estrutura da página.

Melhores práticas de conteúdo

Esta seção contém melhores práticas sugeridas para conteúdo claro, conciso e consistente.

Utilize o tempo presente

Faça e não faça - Utilize o tempo presente
FaçaNão faça
Este comando inicializa um proxy.Este comando irá iniciar um proxy.

Exceção: utilize o tempo futuro ou pretérito quando necessário para comunicar o significado correto.

Utilize voz ativa

Faça e não faça - Utilize voz ativa
FaçaNão faça
Você pode explorar a API utilizando um navegador.A API pode ser explorada utilizando um navegador.
O arquivo YAML especifica o número de réplicas.O número de réplicas é especificado no arquivo YAML.

Exceção: utilize a voz passiva se a voz ativa resultar em uma construção estranha.

Utilize linguagem simples e direta

Utilize linguagem simples e direta. Evite utilizar frases ou expressões desnecessárias, como "por favor".

Faça e não faça - Utilize linguagem simples e direta
FaçaNão faça
Para criar um ReplicaSet, ...A fim de criar um ReplicaSet, ...
Veja o arquivo de configuração.Por favor, veja o arquivo de configuração.
Veja os Pods.Com este próximo comando veremos os Pods.

Dirija-se ao leitor utilizando "você"

Faça e não faça - Dirigindo-se ao leitor
FaçaNão faça
Você pode criar um Deployment através ...Criaremos um Deployment através ...
Na saída acima, você pode ver ...Na saída acima, vimos que ...

Evite frases em Latim

Prefira termos em inglês no lugar de abreviações em Latim.

Faça e não faça - Evite frases em Latim
FaçaNão faça
For example, ...e.g., ...
That is, ...i.e., ...

Exceção: utilize "etc." para et cetera.

Padrões a evitar

Evite utilizar "nós"

O uso de "nós" em uma sentença pode ser confuso, pois o leitor pode não saber se é parte do "nós" que você está descrevendo.

Faça e não faça - Padrões a evitar
FaçaNão faça
A versão 1.4 inclui ...Na versão 1.4, adicionamos ...
O Kubernetes fornece uma nova funcionalidade para ...Nós fornecemos uma nova funcionalidade para ...
Esta página ensina sobre como você pode utilizar Pods.Nesta página, iremos aprender sobre Pods.

Evite jargões e expressões idiomáticas

Alguns leitores falam inglês como segunda língua. Evite jargões e expressões idiomáticas para auxiliar na compreensão.

Faça e não faça - Evite jargões e expressões idiomáticas
FaçaNão faça
Internally, ...Under the hood, ...
Create a new cluster.Turn up a new cluster.

Evite afirmações sobre o futuro

Evite fazer promessas ou dar dicas sobre o futuro. Se você precisa falar sobre uma funcionalidade em estado alfa, coloque o texto sob um cabeçalho que classifique a informação em estado alfa.

Uma exceção a esta regra é a documentação sobre descontinuações que serão convertidas em remoções em uma versão futura. Um exemplo deste tipo de documentação é o Guia de migração de APIs descontinuadas.

Evite afirmações que ficarão desatualizadas em breve

Evite palavras como "atualmente" e "novo". Uma funcionalidade que é nova hoje pode não ser mais considerada nova em alguns meses.

Faça e não faça - Evite afirmações que ficarão desatualizadas em breve
FaçaNão faça
Na versão 1.4, ...Na versão atual, ...
A funcionalidade de Federação fornece ...A nova funcionalidade de Federação fornece ...

Evite palavras que assumem um nível específico de conhecimento

Evite palavras como "apenas", "simplesmente", "fácil", "facilmente" ou "simples". Estas palavras não agregam valor.

Faça e não faça - Evite palavras insensitivas
FaçaNão faça
Inclua um comando em ...Inclua apenas um comando em ...
Execute o contêiner ...Simplesmente execute o contêiner ...
Você pode remover ...Você pode facilmente remover ...
Estes passos ...Estes passos simples ...

Próximos passos

Última modificação June 06, 2023 at 11:46 AM PST: [pt-br] Update style-guide.md to remove Katacoda. (5904a390f1)