產生 kubectl 命令的參考文件
此頁面說明如何產生 kubectl
命令參考。
注意
本主題說明如何產生 kubectl 命令(例如 kubectl apply 和 kubectl taint)的參考文件。本主題未說明如何產生 kubectl 選項參考頁面。如需如何產生 kubectl 選項參考頁面的說明,請參閱產生 Kubernetes 組件與工具的參考頁面。開始之前
需求條件
您需要一部執行 Linux 或 macOS 的機器。
您需要安裝這些工具
您的
PATH
環境變數必須包含必要的建置工具,例如Go
二進位檔和python
。您需要知道如何建立提取請求到 GitHub 倉庫。這包括建立您自己的倉庫分支。如需更多資訊,請參閱從本地副本工作。
設定本地倉庫
建立本地工作區並設定您的 GOPATH
mkdir -p $HOME/<workspace>
export GOPATH=$HOME/<workspace>
取得以下倉庫的本地副本
go get -u github.com/spf13/pflag
go get -u github.com/spf13/cobra
go get -u gopkg.in/yaml.v2
go get -u github.com/kubernetes-sigs/reference-docs
如果您還沒有 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
從 $GOPATH/src/k8s.io/kubernetes/vendor/github.com
移除 spf13 套件
rm -rf $GOPATH/src/k8s.io/kubernetes/vendor/github.com/spf13
kubernetes/kubernetes 倉庫提供 kubectl
和 kustomize
原始碼。
判斷您的 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>
。
在您的本地 k8s.io/kubernetes 倉庫中,檢出感興趣的分支,並確保它是最新的。例如,如果您想要產生 Kubernetes 1.31.0 的文件,您可以使用以下命令
cd <k8s-base>
git checkout v1.31.0
git pull https://github.com/kubernetes/kubernetes 1.31.0
如果您不需要編輯 kubectl
原始碼,請依照設定建置變數的指示。
編輯 kubectl 原始碼
kubectl 命令參考文件是從 kubectl 原始碼自動產生的。如果您想要變更參考文件,第一步是變更 kubectl 原始碼中的一或多個註解。在您的本地 kubernetes/kubernetes 倉庫中進行變更,然後提交提取請求到 github.com/kubernetes/kubernetes 的 master 分支。
PR 56673 是一個提取請求的範例,它修正了 kubectl 原始碼中的錯字。
監控您的提取請求,並回覆審閱者評論。持續監控您的提取請求,直到它合併到 kubernetes/kubernetes 倉庫的目標分支中。
將您的變更揀選到發布分支中
您的變更現在位於 master 分支中,該分支用於下一個 Kubernetes 版本的開發。如果您希望您的變更出現在已發布的 Kubernetes 版本的文件中,您需要建議將您的變更揀選到發布分支中。
例如,假設 master 分支用於開發 Kubernetes 1.32,而您想要將變更向後移植到 release-1.31 分支。如需如何執行此操作的說明,請參閱提議 Cherry Pick。
監控您的 cherry-pick pull request,直到它合併到 release 分支中。
注意
提議 cherry pick 需要您具有在 pull request 中設定標籤和里程碑的權限。如果您沒有這些權限,則需要與可以為您設定標籤和里程碑的人員合作。設定建置變數
前往 <rdocs-base>
。在您的命令列中,設定以下環境變數。
- 將
K8S_ROOT
設定為<k8s-base>
。 - 將
K8S_WEBROOT
設定為<web-base>
。 - 將
K8S_RELEASE
設定為您要建置的文件版本。例如,如果您要為 Kubernetes 1.31 建置文件,請將K8S_RELEASE
設定為 1.31。
例如
export K8S_WEBROOT=$GOPATH/src/github.com/<your-username>/website
export K8S_ROOT=$GOPATH/src/k8s.io/kubernetes
export K8S_RELEASE=1.31
建立版本化的目錄
createversiondirs
建置目標會建立版本化的目錄,並將 kubectl 參考組態檔複製到版本化的目錄。版本化的目錄名稱遵循 v<major>_<minor>
的模式。
在 <rdocs-base>
目錄中,執行以下建置目標
cd <rdocs-base>
make createversiondirs
在 k8s.io/kubernetes 中取出 release 標籤
在您的本地 <k8s-base>
儲存庫中,取出具有您要記錄的 Kubernetes 版本的 branch。例如,如果您要為 Kubernetes 1.31.0 產生文件,請取出 v1.31
標籤。請確保您的本地 branch 是最新的。
cd <k8s-base>
git checkout v1.31.0
git pull https://github.com/kubernetes/kubernetes v1.31.0
執行文件產生程式碼
在您的本地 <rdocs-base>
中,執行 copycli
建置目標。此命令以 root
身分執行
cd <rdocs-base>
make copycli
copycli
命令會清除暫時的建置目錄、產生 kubectl 命令檔案,並將整理過的 kubectl 命令參考 HTML 頁面和 assets 複製到 <web-base>
。
找到產生的檔案
驗證已產生這兩個檔案
[ -e "<rdocs-base>/gen-kubectldocs/generators/build/index.html" ] && echo "index.html built" || echo "no index.html"
[ -e "<rdocs-base>/gen-kubectldocs/generators/build/navData.js" ] && echo "navData.js built" || echo "no navData.js"
找到複製的檔案
驗證所有產生的檔案都已複製到您的 <web-base>
cd <web-base>
git status
輸出應包含修改後的檔案
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/node_modules/font-awesome/css/font-awesome.min.css
在本機測試文件
在您的本地 <web-base>
中建置 Kubernetes 文件。
cd <web-base>
git submodule update --init --recursive --depth 1 # if not already done
make container-serve
檢視本機預覽。
在 kubernetes/website 中新增和提交變更
執行 git add
和 git commit
以提交檔案。
建立 pull request
建立到 kubernetes/website
儲存庫的 pull request。監控您的 pull request,並根據需要回覆審查意見。繼續監控您的 pull request,直到它合併。
在您的 pull request 合併幾分鐘後,您更新的參考主題將在已發布的文件中可見。