为 Kubernetes API 生成参考文档

    Kubernetes API 参考文档是从 构建的,而工具是从 kubernetes-sigs/reference-docs 构建的。

    如果您在生成的文档中发现错误,则需要。

    如果您只需要从 OpenAPI 规范中重新生成参考文档,请继续阅读此页。

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

    • 你需要安装以下工具:

      • v3.7.x
      • Git
      • 1.13+ 版本
      • 用来安装 PyYAML 的 Pip
      • v5.1.2
      • make
    • 你的 PATH 环境变量必须包含所需要的构建工具,例如 Go 程序和 python

    • 你需要知道如何为一个 GitHub 仓库创建拉取请求(PR)。 这牵涉到创建仓库的派生(fork)副本。 有关信息可进一步查看基于本地副本开展工作

    配置本地仓库

    获取以下仓库的本地克隆:

    1. go get -u github.com/kubernetes-incubator/reference-docs
    2. go get -u github.com/go-openapi/loads
    3. go get -u github.com/go-openapi/spec

    如果你还没有下载过 kubernetes/website 仓库,现在下载:

    1. git clone https://github.com/<your-username>/website $GOPATH/src/github.com/<your-username>/website

    克隆 kubernetes/kubernetes 仓库作为 k8s.io/kubernetes:

    1. git clone https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes
    • 仓库克隆后的根目录为 $GOPATH/src/k8s.io/kubernetes。 后续步骤将此目录称为 <k8s-base>
    • kubernetes/website 仓库克隆后的根目录为 $GOPATH/src/github.com/<your username>/website。后续步骤将此目录称为 <web-base>
    • 仓库克隆后的基本目录为 $GOPATH/src/github.com/kubernetes-sigs/reference-docs。 后续步骤将此目录称为 <rdocs-base>

    本节说明如何生成已发布的 Kubernetes API 参考文档

    • 设置 K8S_ROOT<k8s-base>.
    • 设置 K8S_WEBROOT 为 .
    • 设置 K8S_RELEASE 为要构建的文档的版本。 例如,如果您想为 Kubernetes 1.17 构建文档,请将 K8S_RELEASE 设置为 1.17。

    例如:

    构建目标 updateapispec 负责创建版本化的构建目录。 目录创建了之后,从 <k8s-base> 仓库取回 OpenAPI 规范文件。 这些步骤确保配置文件的版本和 Kubernetes OpenAPI 规范的版本与发行版本匹配。 版本化目录的名称形式为 v<major>_<minor>

    在 ‘’ 目录中,运行以下命令来构建:

    1. cd <rdocs-base>
    2. make updateapispec
    1. cd <rdocs-base>
    2. make copyapi

    验证是否已生成这两个文件:

    1. [ -e "<rdocs-base>/gen-apidocs/generators/build/index.html" ] && echo "index.html built" || echo "no index.html"
    2. [ -e "<rdocs-base>/gen-apidocs/generators/build/navData.js" ] && echo "navData.js built" || echo "no navData.js"

    进入本地 <web-base> 目录,检查哪些文件被更改:

    输出类似于:

    1. static/docs/reference/generated/kubernetes-api/v1.20/css/bootstrap.min.css
    2. static/docs/reference/generated/kubernetes-api/v1.20/css/stylesheet.css
    3. static/docs/reference/generated/kubernetes-api/v1.20/fonts/FontAwesome.otf
    4. static/docs/reference/generated/kubernetes-api/v1.20/fonts/fontawesome-webfont.svg
    5. static/docs/reference/generated/kubernetes-api/v1.20/fonts/fontawesome-webfont.ttf
    6. static/docs/reference/generated/kubernetes-api/v1.20/fonts/fontawesome-webfont.woff
    7. static/docs/reference/generated/kubernetes-api/v1.20/fonts/fontawesome-webfont.woff2
    8. static/docs/reference/generated/kubernetes-api/v1.20/index.html
    9. static/docs/reference/generated/kubernetes-api/v1.20/js/jquery.scrollTo.min.js
    10. static/docs/reference/generated/kubernetes-api/v1.20/js/navData.js
    11. static/docs/reference/generated/kubernetes-api/v1.20/js/scroll.js

    更新 API 参考索引页面

    在为新发行版本生成参考文档时,需要更新下面的文件,使之包含新的版本号: <web-base>/content/en/docs/reference/kubernetes-api/api-index.md

    • 打开并编辑 <web-base>/content/en/docs/reference/kubernetes-api/api-index.md, API 参考的版本号。例如:

      1. title: v1.17
      2. [Kubernetes API v1.17](/docs/reference/generated/kubernetes-api/v1.17/)
    • 打开编辑 <web-base>/content/en/docs/reference/_index.md,添加指向最新 API 参考 的链接,删除最老的 API 版本。 通常保留最近的五个版本的 API 参考的链接。

    发布 API 参考的本地版本。 检查。

    1. cd <web-base>
    2. git submodule update --init --recursive --depth 1 # if not already done
    3. make container-serve

    提交更改

    基于你所生成的更改创建 PR, 提交到 仓库。 监视您提交的 PR,并根据需要回复 reviewer 的评论。继续监视您的 PR,直到合并为止。