共計 1891 個字符,預計需要花費 5 分鐘才能閱讀完成。
本篇內容主要講解“kubernetes/kubeadm 工作流 Runner 怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“kubernetes/kubeadm 工作流 Runner 怎么用”吧!
phaseRunner
// phaseRunner provides a wrapper to a Phase with the addition of a set
// of contextual information derived by the workflow managed by the Runner.
// TODO: If we ever decide to get more sophisticated we can swap this type with a well defined dag or tree library.
type phaseRunner struct {
Phase
parent *phaseRunner // 父 phaseRunner
level int // phase 在工作流中的層級
// selfPath contains all the elements of the path that identify the phase into
// the workflow managed by the Runner.
selfPath []string
generatedName string // phase 包含各級 phase 的全名
use string // 使用幫助信息,相當于工作流中的相對路徑
}
Runner
type RunnerOptions struct {FilterPhases []string // 需要執行的 phase 列表,如果列表為空,則全部執行
SkipPhases []string // 需要屏蔽的 phase,如果列表為空,則不屏蔽}
// Runner implements management of composable kubeadm workflows.
type Runner struct {
Options RunnerOptions // Runner 執行選項
Phases []Phase // Runner 管理的工作流中所有的 phase
runDataInitializer func(*cobra.Command, []string) (RunData, error) // 構造工作流中所有 phase 共享數據的回調函數
runData RunData // 工作流中所有 phase 共享的數據
runCmd *cobra.Command // 觸發 Runner 的命令
// cmdAdditionalFlags holds additional, shared flags that could be added to the subcommands generated
// for phases. Flags could be inherited from the parent command too or added directly to each phase
cmdAdditionalFlags *pflag.FlagSet
phaseRunners []*phaseRunner // 工作流的上下文信息}
Runner 對外方法創建 Runner
工作流 workflow 包對外提供一個創建空 Runner 的方法 NewRunner(),該空 Runner 實際上也是一個空的工作流,它不包括任何 phase,后續可以使用添加 phase 的接口來增加 phase。
func NewRunner() *Runner {
return Runner{Phases: []Phase{},}
加入 phase
當工作流創建完成后,就可以使用 func (e *Runner) AppendPhase(t Phase) 接口來添加 phase 了。
func (e *Runner) AppendPhase(t Phase) {e.Phases = append(e.Phases, t)
}
此時添加 phase,只是簡單的把 phase 追加到 runner 的切片列表中,phase 的執行順序與加入順序一致。
到此,相信大家對“kubernetes/kubeadm 工作流 Runner 怎么用”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
正文完
發表至: 計算機運維
2023-08-04