生成 Kubernetes API 的參考文件

本頁面顯示瞭如何更新 Kubernetes API 參考文件。

Kubernetes API 參考文件是使用 kubernetes-sigs/reference-docs 程式碼生成工具,從 Kubernetes OpenAPI 規範 構建的。

如果您發現生成的文件中存在錯誤,您需要 在 upstream 進行修復

如果您只需要從 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 構建目標會建立版本化的構建目錄。目錄建立後,Open API 規範將從 <k8s-base> 倉庫獲取。這些步驟可確保配置檔案和 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.34/css/bootstrap.min.css
static/docs/reference/generated/kubernetes-api/v1.34/css/font-awesome.min.css
static/docs/reference/generated/kubernetes-api/v1.34/css/stylesheet.css
static/docs/reference/generated/kubernetes-api/v1.34/fonts/FontAwesome.otf
static/docs/reference/generated/kubernetes-api/v1.34/fonts/fontawesome-webfont.eot
static/docs/reference/generated/kubernetes-api/v1.34/fonts/fontawesome-webfont.svg
static/docs/reference/generated/kubernetes-api/v1.34/fonts/fontawesome-webfont.ttf
static/docs/reference/generated/kubernetes-api/v1.34/fonts/fontawesome-webfont.woff
static/docs/reference/generated/kubernetes-api/v1.34/fonts/fontawesome-webfont.woff2
static/docs/reference/generated/kubernetes-api/v1.34/index.html
static/docs/reference/generated/kubernetes-api/v1.34/js/jquery.scrollTo.min.js
static/docs/reference/generated/kubernetes-api/v1.34/js/navData.js
static/docs/reference/generated/kubernetes-api/v1.34/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 來提交更改。

將您的更改作為 Pull Request 提交到 kubernetes/website 倉庫。監控您的 Pull Request,並根據需要響應審閱者的評論。繼續監控您的 Pull Request,直到它被合併。

下一步

最後修改於 2024 年 1 月 2 日下午 8:14 PST:清理三個 generate-ref-docs (4d6a8e57c0)