文档章节

【kubernetes/kubeadm】工作流的Phase数据结构

恋恋美食
 恋恋美食
发布于 06/13 12:02
字数 646
阅读 18
收藏 0

Phase即工作流中的阶段或步骤。创建一个Phase只需要实例化一个Phase struct类型的变量即可。

Phase定义了某个步骤及该步骤下所采取的动作。

Phase数结结构

Phase数据结构定义位于kubernetes\cmd\kubeadm\app\cmd\phases\workflow\phase.go

type Phase struct {
	Name string // phase的名字,同一个workflow下的phase或同一个父phase下的子phase名字也必须唯一

	Aliases []string // phase的别名,可以有多个

	Short string // phase的简短介绍

	Long string // phase的介绍

	Example string // 使用示例,类似于help信息

	Hidden bool // 该phase是否需要在工作流帮助信息中隐藏

	Phases []Phase // 子phase,有序排列

	// RunAllSiblings allows to assign to a phase the responsibility to
	// run all the sibling phases
	// Nb. phase marked as RunAllSiblings can not have Run functions
	RunAllSiblings bool

	Run func(data RunData) error // phase的回调函数

	RunIf func(data RunData) (bool, error) // 条件检测回调函数,在Run之前调用,决定是否要继续调用Run,如果RunIf返回(true,nil),那么Run将会被执行,否则不执行

	// InheritFlags defines the list of flags that the cobra command generated for this phase should Inherit
	// from local flags defined in the parent command / or additional flags defined in the phase runner.
	// If the values is not set or empty, no flags will be assigned to the command
	// Nb. global flags are automatically inherited by nested cobra command
	InheritFlags []string

	// LocalFlags defines the list of flags that should be assigned to the cobra command generated
	// for this phase.
	// Nb. if two or phases have the same local flags, please consider using local flags in the parent command
	// or additional flags defined in the phase runner.
	LocalFlags *pflag.FlagSet

	// ArgsValidator defines the positional arg function to be used for validating args for this phase
	// If not set a phase will adopt the args of the top level command.
	ArgsValidator cobra.PositionalArgs
}

对外方法

Phase只提供一个方法用于添加子Phase,这也意味着一旦创建它,其属性一般就不会修改,可以动态的添加子Phase

func (t *Phase) AppendPhase(phase Phase) {
	t.Phases = append(t.Phases, phase)
}

要点总结

phase可以包含子phase

通过phase的方法func (t *Phase) AppendPhase(phase Phase)可以把一个phase加入到另一个phase中,从而成为其子phase。

一个phase的子phase存放于Phase.Phases的切片中,而且是按照添加的顺序排列的,这也是子phase被执行的顺序。

一个phase的子phase在其父phase执行后会立即执行。

phase的名字需要唯一

© 著作权归作者所有

恋恋美食

恋恋美食

粉丝 106
博文 148
码字总数 135152
作品 0
杭州
高级程序员
私信 提问
kubeadm-v1.10.2 k8s集群证书过期

1、k8s 集群架构描述 kubeadm v1.10.2创建k8s集群。 master节点高可用,三节点(10.18.60.3、10.18.60.4、10.18.60.5)。 LVS实现master三节点代理。 2、K8S集群证书过期,日志报错如下 Unab...

笔下生风
05/24
0
0
Kubernetes官方集群部署工具kubeadm原理解析

根据所处环境的不同,Kubernetes集群的安装部署有多种不同的方式。如果是在公有云上还好,一般都会提供相应的安装方案。如果是自行搭建私有环境,可选的安装方案则不尽相同,有时可能需要从零...

Docker
2018/03/30
0
0
Kubernetes的etcd数据查看和迁移

Kubernetes的集群元数据都保存在etcd中,我们可以直接访问来查看数据。 1、查看etcd数据 kubeadm默认安装 方法如下: 因为Kubernetes中的etcd 实例使用了https,需要指定证书等信息,即cacer...

openthings
2018/12/11
0
0
kubeadm安装kubernetes 1.13.1集群完整记录

k8s是什么   Kubernetes简称为k8s,它是 Google 开源的容器集群管理系统。在 Docker 技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大...

上尉j
01/03
0
0
Kubernetes 1.7.2 版本发布,容器集群管理系统

Kubernetes 1.7.2 版本发布了,该版本从1.7.1版本以来有15处修改,其中修复一个Pod BUG#48786, 下载k8s 1.7.2版本,查看 1.7 版本相关介绍。 以下是 1.7.2版本更新内容: Use port 20256 f...

O0oo0O
2017/07/25
1K
5

没有更多内容

加载失败,请刷新页面

加载更多

nproc systemd on CentOS 7

Increasing nproc for processes launched by systemd on CentOS 7 Ask Question I have successfully increased the nofile and nproc value for the local users, but I couldn't find a p......

MtrS
51分钟前
3
0
了解微信小程序下拉刷新功能

小程序提供了这个事件。 onPullDownRefresh() 监听用户下拉刷新事件。 如果要开启下拉刷新功能,要先到json配置: "enablePullDownRefresh":true 配置后下拉有反应了但是没有加载效果,在onP...

oixxan__
今天
2
0
springmvc java对象转json,上传下载(未完)拦截器Interceptor以及源码解析(未完待续)

package com.atguigu.my.controller;import java.util.Collection;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Contr......

architect刘源源
今天
29
0
[日更-2019.5.24、25、26] Android系统中的Binder通信机制分析(一)--servicemanager

声明 其实对于Android系统Binder通信的机制早就有分析的想法,记得去年6、7月份Mr.Deng离职期间约定一起对其进行研究的,但因为我个人问题没能实施这个计划,留下些许遗憾... 最近,刚好在做...

Captain_小馬佩德罗
昨天
24
0
聊聊dubbo的DataStore

序 本文主要研究一下dubbo的DataStore DataStore dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java @SPI("simple")public interface DataStore { ......

go4it
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部