This page shows how to create a new topic for the Kubernetes docs.
Create a fork of the Kubernetes documentation repository as described in Creating a Documentation Pull Request.
As you prepare to write a new topic, think about which of these page types is the best fit for your content:
Task | A task page shows how to do a single thing. The idea is to give readers a sequence of steps that they can actually do as they read the page. A task page can be short or long, provided it stays focused on one area. In a task page, it is OK to blend brief explanations with the steps to be performed, but if you need to provide a lengthy explanation, you should do that in a concept topic. Related task and concept topics should link to each other. For an example of a short task page, see Configure a Pod to Use a Volume for Storage. For an example of a longer task page, see Configure Liveness and Readiness Probes |
Tutorial | A tutorial page shows how to accomplish a goal that ties together several Kubernetes features. A tutorial might provide several sequences of steps that readers can actually do as they read the page. Or it might provide explanations of related pieces of code. For example, a tutorial could provide a walkthrough of a code sample. A tutorial can include brief explanations of the Kubernetes features that are being tied together, but should link to related concept topics for deep explanations of individual features. |
Concept | A concept page explains some aspect of Kubernetes. For example, a concept page might describe the Kubernetes Deployment object and explain the role it plays as an application is deployed, scaled, and updated. Typically, concept pages don't include sequences of steps, but instead provide links to tasks or tutorials. For an example of a concept topic, see Nodes. |
Each page type has a template that you can use as you write your topic. Using templates helps ensure consistency among topics of a given type.
Choose a title that has the keywords you want search engines to find.
Create a filename that uses the words in your title separated by hyphens.
For example, the topic with title
Using an HTTP Proxy to Access the Kubernetes API
has filename http-proxy-access-api.md
. You don’t need to put
“kubernetes” in the filename, because “kubernetes” is already in the
URL for the topic, for example:
http://kubernetes.io/docs/tasks/access-kubernetes-api/http-proxy-access-api/
In your topic, put a title
field in the
front matter.
The front matter is the YAML block that is between the
triple-dashed lines at the top of the page. Here’s an example:
---
title: Using an HTTP Proxy to Access the Kubernetes API
---
Depending on your page type, put your new file in a subdirectory of one of these:
You can put your file in an existing subdirectory, or you can create a new subdirectory.
Depending page type, create an entry in one of these files:
Here’s an example of an entry in /_data/tasks.yaml:
- docs/tasks/configure-pod-container/configure-volume-storage.md
To include a code file in your topic, place the code file in the Kubernetes
documentation repository, preferably in the same directory as your topic
file. In your topic file, use the include
tag:
{% include code.html language="<LEXERVALUE>" file="<RELATIVEPATH>" ghlink="/<PATHFROMROOT>" %}
where:
<LEXERVALUE>
is the language in which the file was written. This must be
a value supported by Rouge.<RELATIVEPATH>
is the path to the file you’re including, relative to the current file, for example, local-volume.yaml
.<PATHFROMROOT>
is the path to the file relative to root, for example, docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml
.Here’s an example of using the include
tag:
{% include code.html language="yaml" file="gce-volume.yaml" ghlink="/docs/tutorials/stateful-application/gce-volume.yaml" %}
If you need to show the reader how to create an API object based on a configuration file, place the configuration file in the Kubernetes documentation repository, preferably in the same directory as your topic file.
In your topic, show this command:
kubectl create -f https://k8s.io/<PATHFROMROOT>
where <PATHFROMROOT>
is the path to the configuration file relative to root,
for example, docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml
.
Here’s an example of a command that creates an API object from a configuration file:
kubectl create -f https://k8s.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml
For an example of a topic that uses this technique, see Running a Single-Instance Stateful Application.
Put image files in the /images
directory. The preferred
image format is SVG.