TBD: This needs to be updated with Istio examples instead of Kubernetes examples.
This page gives writing style guidelines for the Istio documentation. These are guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
For additional information on creating new content for the Istio docs, follow the instructions on Creating a Doc Pull Request.
When you refer to an API object, use the same uppercase and lowercase letters that are used in the actual object name. Typically, the names of API objects use camelCase.
Don’t split the API object name into separate words. For example, use PodTemplateList, not Pod Template List.
Refer to API objects without saying “object,” unless omitting “object” leads to an awkward construction.
|The Pod has two Containers.||The pod has two containers.|
|The Deployment is responsible for …||The Deployment object is responsible for …|
|A PodList is a list of Pods.||A Pod List is a list of pods.|
|The two ContainerPorts …||The two ContainerPort objects …|
|The two ContainerStateTerminated objects …||The two ContainerStateTerminateds …|
Use angle brackets for placeholders. Tell the reader what a placeholder represents.
Display information about a pod:
kubectl describe pod <pod-name>
<pod-name> is the name of one of your pods.
|Click Fork.||Click “Fork”.|
|Select Other.||Select ‘Other’.|
|A cluster is a set of nodes …||A “cluster” is a set of nodes …|
|These components form the control plane.||These components form the control plane.|
codestyle for filenames, directories, and paths
|Open the ||Open the envars.yaml file.|
|Go to the ||Go to the /docs/tasks directory.|
|Open the ||Open the /_data/concepts.yaml file.|
codestyle for inline code and commands
|The ||The “kubectl run” command creates a Deployment.|
|For declarative management, use ||For declarative management, use “kubectl apply”.|
codestyle for object field names
|Set the value of the ||Set the value of the “replicas” field in the configuration file.|
|The value of the ||The value of the “exec” field is an ExecAction object.|
For field values of type string or integer, use normal style without quotation marks.
|Set the value of ||Set the value of ||Set the value of ||Set the value of |
|Set the value of the ||Set the value of the |
For any headings, only apply an uppercase letter to the first word of the heading, except is a word is a proper noun or an acronym.
|Configuring rate limits||Configuring Rate Limits|
|Using Envoy for ingress||Using envoy for ingress|
|Using HTTPS||Using https|
|kubectl get pods||$ kubectl get pods|
Verify that the pod is running on your chosen node:
kubectl get pods --output=wide
The output is similar to this:
NAME READY STATUS RESTARTS AGE IP NODE nginx 1/1 Running 0 13s 10.200.0.4 worker0
Some standard terms we want to use consistently within the documentation for clarity.
We prefer to use “Envoy” as it’s a more concrete term than “proxy” and will resonate if used consistently throughout the docs.
Mixer is a proper noun and should be used as such:
Not a proper noun but we should attempt to consistently use the term to describe inputs to Mixer and NOT use the term when talking about other forms of configuration.
No dash, it’s load balancing not load-balancing.
Not a proper noun. Use in place of service fabric.
Use in the context of routing and multiple finer-grained versions of a service. Avoid using “service tags” or “service labels” which are the mechanism to identify the service versions, not the thing itself.
This section contains suggested best practices for clear, concise, and consistent content.
|This command starts a proxy.||This command will start a proxy.|
Exception: Use future or past tense if it is required to convey the correct meaning.
|You can explore the API using a browser.||The API can be explored using a browser.|
|The YAML file specifies the replica count.||The replica count is specified in the YAML file.|
Exception: Use passive voice if active voice leads to an awkward construction.
Use simple and direct language. Avoid using unnecessary phrases, such as saying “please.”
|To create a ReplicaSet, …||In order to create a ReplicaSet, …|
|See the configuration file.||Please see the configuration file.|
|View the Pods.||With this next command, we’ll view the Pods.|
|You can create a Deployment by …||We’ll create a Deployment by …|
|In the preceding output, you can see…||In the preceding output, we can see …|
Using “we” in a sentence can be confusing, because the reader might not know whether they’re part of the “we” you’re describing.
|Version 1.4 includes …||In version 1.4, we have added …|
|Kubernetes provides a new feature for …||We provide a new feature …|
|This page teaches you how to use pods.||In this page, we are going to learn about pods.|
Some readers speak English as a second language. Avoid jargon and idioms to help make their understanding easier.
|Internally, …||Under the hood, …|
|Create a new cluster.||Turn up a new cluster.|
Avoid making promises or giving hints about the future. If you need to talk about an alpha feature, put the text under a heading that identifies it as alpha information.
Avoid words like “currently” and “new.” A feature that is new today might not be considered new in a few months.
|In version 1.4, …||In the current version, …|
|The Federation feature provides …||The new Federation feature provides …|