参考文档快速入门

本页面介绍了如何使用 update-imported-docs.py 脚本来生成 Kubernetes 参考文档。该脚本可自动化构建设置,并为某个发布版本生成参考文档。

开始之前

要求

  • 你需要一台运行 Linux 或 macOS 的机器。

  • 你需要安装以下工具:

  • 你的 PATH 环境变量必须包含必需的构建工具,例如 Go 二进制文件和 python

  • 你需要知道如何向 GitHub 仓库创建拉取请求。这包括创建你自己的仓库分支(fork)。更多信息,参见从本地克隆操作

获取文档仓库

确保你的 website 分支(fork)与 GitHub 上的 kubernetes/website 远程仓库(main 分支)保持最新,并克隆你的 website 分支。

mkdir github.com
cd github.com
git clone git@github.com:<your_github_username>/website.git

确定你克隆下来的仓库的根目录。例如,如果你按照上一步骤获取了仓库,你的根目录就是 github.com/website. 后续步骤将你的根目录称为 <web-base>

update-imported-docs 概述

update-imported-docs.py 脚本位于 <web-base>/update-imported-docs/ 目录下。

该脚本构建以下参考文档:

  • 组件和工具参考页面
  • kubectl 命令参考
  • Kubernetes API 参考

update-imported-docs.py 脚本从 Kubernetes 源码生成 Kubernetes 参考文档。该脚本会在你的机器上创建一个 /tmp 下的临时目录,并将必需的仓库:kubernetes/kuberneteskubernetes-sigs/reference-docs 克隆到此目录中。该脚本会将你的 GOPATH 设置为这个临时目录。另外还会设置三个环境变量:

  • K8S_RELEASE
  • K8S_ROOT
  • K8S_WEBROOT

该脚本成功运行需要两个参数:

  • 一个 YAML 配置文件 (reference.yml)
  • 一个发布版本,例如:1.17

该配置文件包含一个 generate-command 字段。generate-command 字段定义了来自 kubernetes-sigs/reference-docs/Makefile 的一系列构建指令。K8S_RELEASE 变量决定了发布版本。

update-imported-docs.py 脚本执行以下步骤:

  1. 克隆配置文件中指定的关联仓库。为了生成参考文档,默认克隆的仓库是 kubernetes-sigs/reference-docs
  2. 在克隆的仓库下运行命令来准备文档生成器,然后生成 HTML 和 Markdown 文件。
  3. 将生成的 HTML 和 Markdown 文件复制到 <web-base> 仓库的本地克隆中,位于配置文件中指定的位置。
  4. kubectl 命令链接从 kubectl.md 更新为引用 kubectl 命令参考中的节。

当生成的文件在你 <web-base> 仓库的本地克隆中时,你可以将它们作为拉取请求提交到 <web-base>

配置文件格式

每个配置文件可能包含多个将一起导入的仓库。必要时,你可以手动编辑配置文件进行自定义。你也可以创建新的配置文件来导入其他文档组。以下是一个 YAML 配置文件示例:

repos:
- name: community
  remote: https://github.com/kubernetes/community.git
  branch: master
  files:
  - src: contributors/devel/README.md
    dst: docs/imported/community/devel.md
  - src: contributors/guide/README.md
    dst: docs/imported/community/guide.md

由该工具导入的单页 Markdown 文档必须遵循文档风格指南

自定义 reference.yml

打开 <web-base>/update-imported-docs/reference.yml 进行编辑。除非你理解该命令是如何用于构建参考文档的,否则不要更改 generate-command 字段的内容。通常你不需要更新 reference.yml。有时,上游源代码的更改可能需要更改配置文件(例如:golang 版本依赖和第三方库更改)。如果你遇到构建问题,请在 #sig-docs Kubernetes Slack 频道上联系 SIG-Docs 团队。

reference.yml 中,files 包含 srcdst 字段的列表。src 字段包含克隆的 kubernetes-sigs/reference-docs 构建目录中生成的 Markdown 文件的位置,而 dst 字段指定将该文件复制到克隆的 kubernetes/website 仓库的哪个位置。例如:

repos:
- name: reference-docs
  remote: https://github.com/kubernetes-sigs/reference-docs.git
  files:
  - src: gen-compdocs/build/kube-apiserver.md
    dst: content/en/docs/reference/command-line-tools-reference/kube-apiserver.md
  ...

注意,当有许多文件需要从同一个源目录复制到同一个目标目录时,你可以在 src 的值中使用通配符。你必须提供目录名作为 dst 的值。例如:

  files:
  - src: gen-compdocs/build/kubeadm*.md
    dst: content/en/docs/reference/setup-tools/kubeadm/generated/

运行 update-imported-docs 工具

你可以按如下方式运行 update-imported-docs.py 工具:

cd <web-base>/update-imported-docs
./update-imported-docs.py <configuration-file.yml> <release-version>

例如:

./update-imported-docs.py reference.yml 1.17

release.yml 配置文件包含修正相对链接的指令。要修正导入文件中的相对链接,请将 gen-absolute-links 属性设置为 true。你可以在 release.yml 中找到示例。

在 kubernetes/website 中添加并提交更改

列出已生成并复制到 <web-base> 的文件:

cd <web-base>
git status

输出显示了新增和修改的文件。生成的输出因上游源代码的更改而异。

生成的组件工具文件

content/en/docs/reference/command-line-tools-reference/cloud-controller-manager.md
content/en/docs/reference/command-line-tools-reference/kube-apiserver.md
content/en/docs/reference/command-line-tools-reference/kube-controller-manager.md
content/en/docs/reference/command-line-tools-reference/kube-proxy.md
content/en/docs/reference/command-line-tools-reference/kube-scheduler.md
content/en/docs/reference/setup-tools/kubeadm/generated/kubeadm.md
content/en/docs/reference/kubectl/kubectl.md

生成的 kubectl 命令参考文件

static/docs/reference/generated/kubectl/kubectl-commands.html
static/docs/reference/generated/kubectl/navData.js
static/docs/reference/generated/kubectl/scroll.js
static/docs/reference/generated/kubectl/stylesheet.css
static/docs/reference/generated/kubectl/tabvisibility.js
static/docs/reference/generated/kubectl/node_modules/bootstrap/dist/css/bootstrap.min.css
static/docs/reference/generated/kubectl/node_modules/highlight.js/styles/default.css
static/docs/reference/generated/kubectl/node_modules/jquery.scrollto/jquery.scrollTo.min.js
static/docs/reference/generated/kubectl/node_modules/jquery/dist/jquery.min.js
static/docs/reference/generated/kubectl/css/font-awesome.min.css

生成的 Kubernetes API 参考目录和文件

static/docs/reference/generated/kubernetes-api/v1.33/index.html
static/docs/reference/generated/kubernetes-api/v1.33/js/navData.js
static/docs/reference/generated/kubernetes-api/v1.33/js/scroll.js
static/docs/reference/generated/kubernetes-api/v1.33/js/query.scrollTo.min.js
static/docs/reference/generated/kubernetes-api/v1.33/css/font-awesome.min.css
static/docs/reference/generated/kubernetes-api/v1.33/css/bootstrap.min.css
static/docs/reference/generated/kubernetes-api/v1.33/css/stylesheet.css
static/docs/reference/generated/kubernetes-api/v1.33/fonts/FontAwesome.otf
static/docs/reference/generated/kubernetes-api/v1.33/fonts/fontawesome-webfont.eot
static/docs/reference/generated/kubernetes-api/v1.33/fonts/fontawesome-webfont.svg
static/docs/reference/generated/kubernetes-api/v1.33/fonts/fontawesome-webfont.ttf
static/docs/reference/generated/kubernetes-api/v1.33/fonts/fontawesome-webfont.woff
static/docs/reference/generated/kubernetes-api/v1.33/fonts/fontawesome-webfont.woff2

运行 git addgit commit 来提交文件。

创建拉取请求

kubernetes/website 仓库创建拉取请求。监控你的拉取请求,并根据需要回复审阅意见。持续监控你的拉取请求直到其被合入。

你的拉取请求合入几分钟后,更新的参考主题将在已发布的文档中可见。

下一步

要通过手动设置所需的构建仓库并运行构建目标来生成单个参考文档,请参阅以下指南:

最后修改于 2022 年 10 月 27 日下午 3:04 (太平洋标准时间): 调整参考文档章节索引 (3c33ffc914)