参考文档快速入门
本页面介绍如何使用 update-imported-docs.py
脚本来生成 Kubernetes 参考文档。该脚本可自动执行构建设置并生成发布版本的参考文档。
准备工作
要求
你需要一台运行 Linux 或 macOS 的机器。
你需要安装以下工具
你的
PATH
环境变量必须包含所需的构建工具,例如Go
二进制文件和python
。你需要知道如何向 GitHub 仓库创建拉取请求。这涉及创建你自己的仓库分支。有关更多信息,请参阅从本地克隆工作。
获取文档仓库
确保你的 website
分支与 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>
。
注意
如果你想更改组件工具和 API 参考的内容,请参阅上游贡献指南。update-imported-docs 概述
update-imported-docs.py
脚本位于 <web-base>/update-imported-docs/
目录中。
该脚本构建以下参考
- 组件和工具参考页面
kubectl
命令参考- Kubernetes API 参考
update-imported-docs.py
脚本从 Kubernetes 源代码生成 Kubernetes 参考文档。该脚本在你的机器上的 /tmp
下创建一个临时目录,并将所需的仓库:kubernetes/kubernetes
和 kubernetes-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
脚本执行以下步骤
- 克隆配置文件中指定的相关仓库。为了生成参考文档,默认克隆的仓库是
kubernetes-sigs/reference-docs
。 - 在克隆的仓库下运行命令以准备文档生成器,然后生成 HTML 和 Markdown 文件。
- 将生成的 HTML 和 Markdown 文件复制到配置文件中指定位置的
<web-base>
仓库的本地克隆中。 - 将
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 团队。
注意
generate-command
是一个可选条目,可用于运行给定命令或简短脚本以从仓库中生成文档。在 reference.yml
中,files
包含 src
和 dst
字段的列表。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.30/index.html
static/docs/reference/generated/kubernetes-api/v1.30/js/navData.js
static/docs/reference/generated/kubernetes-api/v1.30/js/scroll.js
static/docs/reference/generated/kubernetes-api/v1.30/js/query.scrollTo.min.js
static/docs/reference/generated/kubernetes-api/v1.30/css/font-awesome.min.css
static/docs/reference/generated/kubernetes-api/v1.30/css/bootstrap.min.css
static/docs/reference/generated/kubernetes-api/v1.30/css/stylesheet.css
static/docs/reference/generated/kubernetes-api/v1.30/fonts/FontAwesome.otf
static/docs/reference/generated/kubernetes-api/v1.30/fonts/fontawesome-webfont.eot
static/docs/reference/generated/kubernetes-api/v1.30/fonts/fontawesome-webfont.svg
static/docs/reference/generated/kubernetes-api/v1.30/fonts/fontawesome-webfont.ttf
static/docs/reference/generated/kubernetes-api/v1.30/fonts/fontawesome-webfont.woff
static/docs/reference/generated/kubernetes-api/v1.30/fonts/fontawesome-webfont.woff2
运行 git add
和 git commit
来提交文件。
创建拉取请求
向 kubernetes/website
仓库创建一个拉取请求。监控你的拉取请求,并根据需要回复审查评论。继续监控你的拉取请求,直到它被合并。
你的拉取请求合并几分钟后,你更新的参考主题将在已发布的文档中可见。
后续步骤
要通过手动设置所需的构建仓库并运行构建目标来生成单独的参考文档,请参阅以下指南