本页面介绍了如何使用 update-imported-docs.py 脚本来生成 Kubernetes 参考文档。该脚本可自动完成构建设置并生成特定版本的参考文档。
您需要一台运行 Linux 或 macOS 的机器。
您需要安装以下工具
您的 PATH 环境变量必须包含所需的构建工具,例如 Go 二进制文件和 python。
您需要知道如何创建 GitHub 仓库的拉取请求。这涉及创建您自己的仓库分叉。有关更多信息,请参阅 从本地克隆工作。
确保你的 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.py 脚本位于 <web-base>/update-imported-docs/ 目录中。
该脚本可构建以下参考内容
kubectl 命令参考update-imported-docs.py 脚本根据 Kubernetes 源代码生成 Kubernetes 参考文档。该脚本会在你机器的 /tmp 下创建一个临时目录,并将所需的仓库:kubernetes/kubernetes 和 kubernetes-sigs/reference-docs 克隆到该目录中。脚本会将你的 GOPATH 设置为该临时目录。此外还会设置三个环境变量
K8S_RELEASEK8S_ROOTK8S_WEBROOT该脚本需要两个参数才能成功运行
reference.yml)1.17配置文件包含一个 generate-command 字段。generate-command 字段定义了来自 kubernetes-sigs/reference-docs/Makefile 的一系列构建指令。K8S_RELEASE 变量确定了发布版本。
update-imported-docs.py 脚本执行以下步骤
kubernetes-sigs/reference-docs。<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 文档必须遵守 文档风格指南。
打开 <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.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 中找到此示例。
列出已生成并复制到 <web-base> 的文件
cd <web-base>
git status
输出显示了新增和修改的文件。生成的输出根据上游源代码所做的更改而有所不同。
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
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
static/docs/reference/generated/kubernetes-api/v1.36/index.html
static/docs/reference/generated/kubernetes-api/v1.36/js/navData.js
static/docs/reference/generated/kubernetes-api/v1.36/js/scroll.js
static/docs/reference/generated/kubernetes-api/v1.36/js/query.scrollTo.min.js
static/docs/reference/generated/kubernetes-api/v1.36/css/font-awesome.min.css
static/docs/reference/generated/kubernetes-api/v1.36/css/bootstrap.min.css
static/docs/reference/generated/kubernetes-api/v1.36/css/stylesheet.css
static/docs/reference/generated/kubernetes-api/v1.36/fonts/FontAwesome.otf
static/docs/reference/generated/kubernetes-api/v1.36/fonts/fontawesome-webfont.eot
static/docs/reference/generated/kubernetes-api/v1.36/fonts/fontawesome-webfont.svg
static/docs/reference/generated/kubernetes-api/v1.36/fonts/fontawesome-webfont.ttf
static/docs/reference/generated/kubernetes-api/v1.36/fonts/fontawesome-webfont.woff
static/docs/reference/generated/kubernetes-api/v1.36/fonts/fontawesome-webfont.woff2
运行 git add 和 git commit 来提交这些文件。
向 kubernetes/website 仓库创建拉取请求。监控你的拉取请求,并根据需要回复审查意见。继续监控你的拉取请求,直到它被合并。
在你的拉取请求合并几分钟后,更新后的参考主题将显示在 已发布的文档 中。
要通过手动设置所需的构建仓库并运行构建目标来生成单独的参考文档,请参阅以下指南