为 Kubernetes API 生成参考文档

此页面展示了如何更新 Kubernetes API 参考文档。

Kubernetes API 参考文档是使用 Kubernetes OpenAPI 规范kubernetes-sigs/reference-docs 生成代码构建的。

如果你在生成的文档中发现错误,你需要在上游修复它们

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

开始之前

要求

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

  • 你需要安装以下工具

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

  • 你需要知道如何向 GitHub 存储库创建拉取请求。这包括创建你自己的存储库分支。有关更多信息,请参阅从本地克隆工作

设置本地仓库

创建一个本地工作区并设置你的 GOPATH

mkdir -p $HOME/<workspace>

export GOPATH=$HOME/<workspace>

获取以下仓库的本地克隆

go get -u github.com/kubernetes-sigs/reference-docs

go get -u github.com/go-openapi/loads
go get -u github.com/go-openapi/spec

如果你还没有 kubernetes/website 仓库,请立即获取它

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

获取 kubernetes/kubernetes 仓库的克隆作为 k8s.io/kubernetes

git clone https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes
  • 你的 kubernetes/kubernetes 仓库克隆的基本目录是 $GOPATH/src/k8s.io/kubernetes。 其余步骤将你的基本目录称为 <k8s-base>

  • 你的 kubernetes/website 仓库克隆的基本目录是 $GOPATH/src/github.com/<your username>/website。其余步骤将你的基本目录称为 <web-base>

  • 你的 kubernetes-sigs/reference-docs 仓库克隆的基本目录是 $GOPATH/src/github.com/kubernetes-sigs/reference-docs。其余步骤将你的基本目录称为 <rdocs-base>

生成 API 参考文档

本节展示了如何生成发布的 Kubernetes API 参考文档

设置构建变量

  • K8S_ROOT 设置为 <k8s-base>
  • K8S_WEBROOT 设置为 <web-base>
  • K8S_RELEASE 设置为你想要构建的文档版本。例如,如果你想为 Kubernetes 1.17.0 构建文档,则将 K8S_RELEASE 设置为 1.17.0。

例如

export K8S_WEBROOT=${GOPATH}/src/github.com/<your-username>/website
export K8S_ROOT=${GOPATH}/src/k8s.io/kubernetes
export K8S_RELEASE=1.17.0

创建版本目录并获取 Open API 规范

updateapispec 构建目标创建版本化的构建目录。创建目录后,将从 <k8s-base> 存储库中获取 Open API 规范。这些步骤确保配置文件和 Kubernetes Open API 规范的版本与发布版本匹配。版本化的目录名称遵循 v<major>_<minor> 的模式。

<rdocs-base> 目录中,运行以下构建目标

cd <rdocs-base>
make updateapispec

构建 API 参考文档

copyapi 目标构建 API 参考并将生成的文件复制到 <web-base> 中的目录。在 <rdocs-base> 中运行以下命令

cd <rdocs-base>
make copyapi

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

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

转到本地 <web-base> 的根目录,并查看哪些文件已被修改

cd <web-base>
git status

输出类似于

static/docs/reference/generated/kubernetes-api/v1.32/css/bootstrap.min.css
static/docs/reference/generated/kubernetes-api/v1.32/css/font-awesome.min.css
static/docs/reference/generated/kubernetes-api/v1.32/css/stylesheet.css
static/docs/reference/generated/kubernetes-api/v1.32/fonts/FontAwesome.otf
static/docs/reference/generated/kubernetes-api/v1.32/fonts/fontawesome-webfont.eot
static/docs/reference/generated/kubernetes-api/v1.32/fonts/fontawesome-webfont.svg
static/docs/reference/generated/kubernetes-api/v1.32/fonts/fontawesome-webfont.ttf
static/docs/reference/generated/kubernetes-api/v1.32/fonts/fontawesome-webfont.woff
static/docs/reference/generated/kubernetes-api/v1.32/fonts/fontawesome-webfont.woff2
static/docs/reference/generated/kubernetes-api/v1.32/index.html
static/docs/reference/generated/kubernetes-api/v1.32/js/jquery.scrollTo.min.js
static/docs/reference/generated/kubernetes-api/v1.32/js/navData.js
static/docs/reference/generated/kubernetes-api/v1.32/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 参考版本号。例如

    ---
    title: v1.17
    ---
    
    [Kubernetes API v1.17](/docs/reference/generated/kubernetes-api/v1.17/)
    
  • 打开 <web-base>/content/en/docs/reference/_index.md 进行编辑,并为最新的 API 参考添加一个新链接。删除最旧的 API 参考版本。应该有五个指向最新 API 参考的链接。

本地测试 API 参考

发布 API 参考的本地版本。验证本地预览

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

提交更改

<web-base> 中,运行 git addgit commit 以提交更改。

将你的更改作为拉取请求提交到kubernetes/website 存储库。监视你的拉取请求,并根据需要回复审阅者的评论。继续监视你的拉取请求,直到它被合并。

下一步

上次修改时间:2024 年 1 月 2 日下午 8:14 PST:清理三个 generate-ref-docs (4d6a8e57c0)